package javabeantest;

import java.beans.*;

public class JavaBeanTest {
    public static void main(String[] args) throws Exception {
        // java.beans 的包里面，有一些可以查看 javabean 信息的类
        // Introspector 可以获取指定类的 javabean 信息
        // 存到 BeanInfo 类对象中
        // BeanInfo类的 getPropertyDescriptors 方法，可以获取指定类的属性信息
        // 整个类的属性信息是一个集合，通过遍历，可以一一获取到
        // 每一个属性信息，对应一个 PropertyDescriptor 对象
        // 该对象有 getName 获取属性的字段名
        // 该对象有 getReadMethod ,获取取值器信息
        // getWriteMethod ，获取赋值器信息
        BeanInfo info = Introspector.getBeanInfo(Person.class);
        for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
            System.out.println(pd.getName());
            System.out.println("  " + pd.getReadMethod());
            System.out.println("  " + pd.getWriteMethod());
        }
    }
}
class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

